<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Release 3.0: the DB structure</title>
    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
    <link rel="up" href="upgrade_3_0_toc.html" title="Chapter 33. Upgrading Berkeley DB 2.X applications to Berkeley DB 3.0" />
    <link rel="prev" href="upgrade_3_0_xa.html" title="Release 3.0: db_xa_open" />
    <link rel="next" href="upgrade_3_0_dbinfo.html" title="Release 3.0: the DBINFO structure" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">Release 3.0: the DB structure</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="upgrade_3_0_xa.html">Prev</a> </td>
          <th width="60%" align="center">Chapter 33. Upgrading Berkeley DB 2.X applications to Berkeley DB 3.0</th>
          <td width="20%" align="right"> <a accesskey="n" href="upgrade_3_0_dbinfo.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="upgrade_3_0_db"></a>Release 3.0: the DB structure</h2>
          </div>
        </div>
      </div>
      <p>The <a href="../api_reference/C/db.html" class="olink">DB</a> structure is now opaque for applications in the Berkeley DB 3.0
release.  Accesses to any fields within that structure by the application
should be replaced with method calls.  The following example illustrates
this using the historic type structure field.  In the Berkeley DB 2.X releases,
applications could find the type of an underlying database using code
similar to the following:</p>
      <pre class="programlisting">DB *db;
DB_TYPE type;

type = db-&gt;type;</pre>
      <p>in the Berkeley DB 3.X releases, this should be done using the
<a href="../api_reference/C/dbget_type.html" class="olink">DB-&gt;get_type()</a> method, as follows:</p>
      <pre class="programlisting">DB *db;
DB_TYPE type;

type = db-&gt;get_type(db);</pre>
      <p>The following table lists the <a href="../api_reference/C/db.html" class="olink">DB</a> fields previously used by
applications and the methods that should now be used to get or set them.</p>
      <div class="informaltable">
        <table border="1" width="80%">
          <colgroup>
            <col />
            <col />
          </colgroup>
          <thead>
            <tr>
              <th><a href="../api_reference/C/db.html" class="olink">DB</a> field</th>
              <th>Berkeley DB 3.X method</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>byteswapped</td>
              <td>
                <a href="../api_reference/C/dbget_byteswapped.html" class="olink">DB-&gt;get_byteswapped()</a>
              </td>
            </tr>
            <tr>
              <td>db_errcall</td>
              <td>
                <a href="../api_reference/C/dbset_errcall.html" class="olink">DB-&gt;set_errcall()</a>
              </td>
            </tr>
            <tr>
              <td>db_errfile</td>
              <td>
                <a href="../api_reference/C/dbset_errfile.html" class="olink">DB-&gt;set_errfile()</a>
              </td>
            </tr>
            <tr>
              <td>db_errpfx</td>
              <td>
                <a href="../api_reference/C/dbset_errpfx.html" class="olink">DB-&gt;set_errpfx()</a>
              </td>
            </tr>
            <tr>
              <td>db_paniccall</td>
              <td>DB-&gt;set_paniccall</td>
            </tr>
            <tr>
              <td>type</td>
              <td>
                <a href="../api_reference/C/dbget_type.html" class="olink">DB-&gt;get_type()</a>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="upgrade_3_0_xa.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="upgrade_3_0_toc.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="upgrade_3_0_dbinfo.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">Release 3.0: db_xa_open </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> Release 3.0: the DBINFO structure</td>
        </tr>
      </table>
    </div>
  </body>
</html>
